package sortmethod;

import java.util.Arrays;

/**
 * 选择排序 时间复杂度n²
 * 最稳定复杂度的排序算法，所以使用该排序的数据量越少越好
 */
public class SelectionSort implements Sort {

    @Override
    public int[] sort(int[] input) {
        if (input == null || input.length < 1) {
            return null;
        }
        for (int i = 0; i < input.length; i++) {
            int minIndex = i;
            for (int t = i; t < input.length; t++) {
                if (input[t] < input[minIndex]) {
                    //遍历去找最小值的下标
                    minIndex = t;
                }

            }
//            int temp = input[minIndex];
//            input[minIndex] = input[i];
//
//            input[i] = temp;
            int temp = input[i];
            input[i] = input[minIndex];
            input[minIndex] = temp;
        }

        return input;
    }

    public static void main(String[] args) {
        int[] ints = new int[]{3456, 5, 3, 2, 324, 4, 213, 18, 232};
        int[] sort = new SelectionSort().sort(ints);
        String s = Arrays.toString(sort);
        System.out.println(s);

    }
}
